package com.bjpowernode.crm.settings.dao;

import com.bjpowernode.crm.settings.domain.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 可以根据Dao层的接口找到对应的匹配的映射配置文件
 *      默认找的是resources目录下的同名的包名下的映射配置文件
 *      如果写在java目录下，则需要通过pom.xml中配置加载java目录下的*.xml的映射配置文件
 *      也可以使用注解进行操作
 */
public interface UserDao {

    /**
     * 登录操作
     *      param1获取第一个参数，param2获取第二个参数，根据参数的位置来获取
     * 养成良好习惯，不能使用 * ，涉及到sql优化，使用*会进行全表扫描，导致sql执行效率很慢
     *      所以在公司中，即使查询的是全部字段，也不会使用 *
     *
     *      @Param注解的作用是给形参起别名，方便在占位符中进行获取
     *
     * @param loginAct
     * @param loginPwd
     * @return
     */
    // loginPwd是不能进行返回的
    // @Select("select id,loginAct,name,email,expireTime,lockState,deptno,allowIps,createTime,createBy,editTime,editBy from tbl_user where loginAct=#{param1} and loginPwd=#{param2}")
    // @Select("select id,loginAct,name,email,expireTime,lockState,deptno,allowIps,createTime,createBy,editTime,editBy from tbl_user where loginAct=#{loginAct} and loginPwd=#{loginPwd}")
    User selectUserByLoginActAndLoginPwd(@Param("loginAct") String loginAct,
                                         @Param("loginPwd") String loginPwd);
}
